package main

import (
	"fmt"
)

func main() {
	// 1、Golang中定义字符 字符属于int类型

	// var a = 'a'
	// fmt.Printf("值: %v, 类型: %T\n", a, a)

	// 2、原样输出字符
	// var a = 'a'
	// fmt.Printf("值: %c, 类型: %T\n", a, a)

	// 3、定义一个字符串输出字符串里面的字符
	// str := "this"
	// fmt.Printf("值: %v, 原样输出: %c, 类型: %T\n", str[2], str[2], str[2])

	// 4、一个汉字占用3个字节（utf-8编码），一个字母占用一个字节
	// str := "this" // 占4个字节
	// fmt.Println(len(str))

	// str := "小皮皮" // 占9个字节
	// fmt.Println(len(str))

	// 5、定义一个字符 字符的值是汉字
	// a := '皮'
	// fmt.Printf("值: %v, 类型: %T\n", a, a)
	// fmt.Printf("值: %c, 类型: %T\n", a, a)

	// 6、通过循环输出字符串里面的字符
	// str := "hello, world"
	// for i := 0; i < len(str); i++ {
	// 	fmt.Printf("值: %c, 类型: %c\n", str[i], str[i])
	// }
	// str := "小皮皮"
	// for _, v := range str {
	// 	fmt.Printf("%v(%c)\n", v, v)
	// }

	// 7、修改字符串中的字符
	// s1 := "big"
	// byteStr := []byte(s1)
	// byteStr[0] = 'p'
	// fmt.Println(string(byteStr))

	s1 := "小皮皮"
	runeStr := []rune(s1)
	runeStr[0] = '臭'
	fmt.Println(string(runeStr))

}
